/**
 * Customize monitor chart
 */
var monitor = {
	/**
	 * 生成性能分析图表
	 * @param target
	 */
	genChart : function(target) {
		var itemId = $("#monitorItem").combobox("getValue");		// 监控项
		var objectType = $("#objectType").combobox("getValue");		// 实体类型
		var chartType = $("#chartType").combobox("getValue");		// 图表类型
		var startTime = $("#startTime").datetimebox("getValue");	// 起始时间
		var endTime = $("#endTime").datetimebox("getValue");		// 结束时间
		var isReal = $("#isReal").is("input:checked");				// 是否实时
		var intervalTime = $("#intervalTime").val();				// 实时数据刷新间隔时间
		var spanTime = $("#spanTime").val();						// 时间跨度
		var title = $("#title").val();								// 自定义标题
		// 默认标题，{objectType}-{monitorItem}
		var defaultTitle =  $("#objectType").combobox("getText") + "-"
				+ $("#monitorItem").combobox("getText");
		title = $.trim(title).length == 0 ? defaultTitle : title;
		var yAxisName = $("#monitorItem").combobox("getText");
		
		$.ajax({
			type : "post",
			url : baseURL + "/monitor/chart",
			data : {
				itemId : itemId,
				objectType : objectType
			},
			dataType : "json",
			success : function(json) {
				// 定时刷新事件
				var _events = {
	                load: function () {
	                    // set up the updating of the chart each {_intervalTime} ms
	                	var _intervalTime = parseInt(intervalTime) * 60 * 1000;
	                    var seriesArr = this.series;
	                    setInterval(function () {
	                    	$.ajax({
	                    		type : "get",
	                    		url : baseURL + "/monitor/real",
	                    		dataType : "json",
	                    		success : function(json) {
	                    			var updateData = json.dataset;
	                    			var xNames = json.categories;
			                    	for (var i = 0; i < seriesArr.length; i++) {
			    	                    var series = seriesArr[i];
				                        var x = xNames[i];
				                        var yDatas = updateData[i].data;
			    	                    for (var j = 0; j < yDatas.length; j++) {
					                        var y = yDatas[j];
					                        series.addPoint([x, y], true, true);
			    	                    }
			                    	}
	                    		}
	                    	});
	                    }, parse);
	                }
	            };
				// chart属性——类型：line, pie
				var _chart = { type : chartType};
				// 是否显示实时数据
				if (isReal) {
					_chart.events = _events;
				}
				// 标题
				var _title = {
					text: title,
		            x: -20 //center	
				}
				// 横坐标
				var _xAxis = { categories: json.categories };
				// 纵坐标
				var _yAxis = {
					title: {
		                text: '纵坐标（单位）'
		            },
		            plotLines: [{
		                value: 0,
		                width: 1,
		                color: '#808080'
		            }]
				};
				// 鼠标悬停时提示
				var _tooltip = {
		            valueSuffix: json.unit
		        };
				// 图例
				var _legend = {
		            borderWidth: 0	
				}
				// 图表选项
				var _options = {
					chart: _chart,
					title: _title,
			        legend: _legend,
			        xAxis: _xAxis,
			        yAxis: _yAxis,
			        series: json.dataset
			    };
				
				$(target).highcharts(_options);
			}
		});
	}
};